Mysql 忘记密码
要解决 MySQL root 用户忘记密码的问题,请按以下步骤操作(针对 Linux 系统):
步骤 1: 停止 MySQL 服务
sudo systemctl stop mysql
步骤 2: 启动 MySQL 无认证模式
sudo mysqld_safe --skip-grant-tables --skip-networking &
- 此模式允许免密登录,但关闭网络连接确保安全。
步骤 3: 无密码登录 MySQL
mysql -u root
步骤 4: 刷新权限并重置密码
FLUSH PRIVILEGES; -- 关键步骤!
-- 根据你的 MySQL 版本选择重置命令:
-- MySQL 5.7.6+ 或 MariaDB 10.1+:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
-- MySQL 5.7.5 及更早版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('你的新密码');
步骤 5: 退出并重启 MySQL
EXIT;
# 关闭 MySQL 进程
sudo kill `sudo cat /var/run/mysqld/mysqld.pid`
# 正常启动服务
sudo systemctl start mysql
验证新密码
mysql -u root -p
# 输入刚设置的新密码
常见问题解决:
mysqld_safe 未找到
尝试完整路径: sudo /usr/sbin/mysqld_safe --skip-grant-tables &
PID 文件路径不同
检查实际 PID 路径: sudo ps aux | grep mysqld
MySQL 8.0+ 特殊步骤
若遇到密码策略问题,重置后执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
系统服务名差异
某些系统服务名可能是 mariadb 或 mysqld:
sudo systemctl stop mariadb # 停止服务示例
sudo systemctl start mysqld # 启动服务示例
- 完成后,请使用 mysql -u root -p 输入新密码测试登录。此操作需服务器物理访问权限,远程服务器需通过控制台操作。